A large enterprise such as a business with many employees typically operates numerous networked computers. The computers need to store their data in a manner that allows access from other computers in the enterprise. Most often, this is accomplished by using a file system and file servers, storing the shared files on a common storage system. File system clients communicate with the file server using a well-defined network file protocol. When a file is created by a computer, it is written through a file server to the disks. When that file is read by the same or by another computer, the data is read from the disks, flows through the file server, and is then delivered to the computer that requested access to that file.
In many cases, computers accessing files are heterogeneous and may run many different operating systems such as AIX®, Microsoft Windows®, Solaris®, HP-UX®, and Linux®. Depending on the operating system they run, they may use different protocols for accessing the file server. For instance, systems running Microsoft Windows® tend to use the common Internet file system (CIFS) protocol while those running Unix® variations tend to use the network file system (NFS) protocol. Yet they all need access to the same files. Even if they access disjoint sets of files, it is much more convenient to be able to share the same file server.
There are attempts to build a file server that can talk various network protocols. These are called network attached storage (or NAS) systems. However, each NAS system is built upon a certain operating system, which has at most one native protocol. The CIFS server on Microsoft Windows® and the NFS server on Linux® (or any other Unix® variations) are considered the “native” implementations of the respective protocols.
Therefore, the NAS system has to handle the other protocols by emulation. For instance, emulated CIFS and emulated NFS have been implemented by the Network Appliance network attached storage product. Native CIFS and emulated NFS have been implemented by IBM's network attached storage NAS 200 product. Emulated CIFS and native NFS has been implemented by Veritas ServPoint® NAS system.
In general, emulated protocols are not fully compatible on function and/or performance with the native implementation, causing operational and communication difficulties. Also, it takes time and effort to develop the emulator so that when a new protocol or a new version of an existing protocol is introduced, it may not be supported by the NAS system for a while, if at all.
One way to address these problems has been to use a heterogenous file system (HFS). Such a system allows file sharing among heterogeneous systems such that all files can be accessed from any of its file system clients (HFS clients). The HFS clients can run different operating systems, each with its own native network protocol. These clients can therefore act as native server for their respective protocols.
However, the HFS clients are separate systems with different network IP addresses. Consequently, a user would need to know which protocol his/her computer is using, the protocols supported by each of the HFS clients, and specifically direct the request to the corresponding HFS client. This is further complicated by the fact that the information about the HFS clients can be dynamic as HFS clients become unavailable or are upgraded and replaced. Furthermore, performance is likely to be poor because there is an extra hop in going through the HFS client and then the HFS server.
Furthermore, when there is too much data to be handled by a single file server, multiple servers are required and the users have to know which file server has their data. When multiple servers are used, there is no easy way to balance the load across those servers.
What is therefore needed is a system that appears as a single entity (i.e., it presents a single system image) to the users and that can handle all their service requests (i.e., files) in an efficient and native manner, regardless of what protocol they are using and where their files are. The need for such a system has heretofore remained unsatisfied.